package mdoc.ejbsample;


import java.util.List;

import javax.ejb.Remote;
import javax.ejb.Stateful;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

/**
 * Session Bean implementation class UtilisateurBean
 */
@Stateful(mappedName = "Utilisateur@Remote")
@Remote(Utilisateur.class)
public class UtilisateurBean implements Utilisateur {
    @PersistenceContext
	private EntityManager entityManager = null;
    
	private Compte compte;
	
    /**
     * Default constructor. 
     */
    public UtilisateurBean() {
        // TODO Auto-generated constructor stub
    	super();
    }

	@Override
	public void debite(float f) {
		// TODO Auto-generated method stub
		compte.setSolde(compte.getSolde()-f);
		entityManager.merge(compte);
	}

	@Override
	public String getNom() {
		// TODO Auto-generated method stub
		return compte.getName();
	}

	@Override
	public void init(String name, String passwd) {
		// TODO Auto-generated method stub
		Query q = entityManager.createNamedQuery("findCompteByName");
		q.setParameter("cname",name);
		List<Compte> res = (List<Compte>)q.getResultList();
		if (res == null)
			compte = (Compte) res;
		else
			compte =  res.get(0);
	}

	@Override
	public float solde() {
		// TODO Auto-generated method stub
		return compte.getSolde();
	}

}
